<?php
/**
 * Form_Submit
 *
 * класс Form_Submit позволяет работать с <input type="submit" и с  <input type="image"
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 2.1
 */
class Form_Submit extends Form_Element
{
  protected $_value;
  protected $_src;

  function __construct(array $arrSettings = array(), $fieldName = null, $showInConstruct = false) {
    parent::__construct($arrSettings, $fieldName);
    if ($showInConstruct)
      $this->show();
  }

	/**
	 * Метод устанавливает свойство
	 *
	 * @param string $settingName
	 * @param mixed $settingValue
	 * @param string $additionalAllowedSettings
	 */
	public function setSetting($settingName, $settingValue, $additionalAllowedSettings = null) {
    switch ($settingName) {
    	case 'value':
    		$this->setValue($settingValue);
    		break;
    	case 'src':
    		$this->setSrc($settingValue);
    		break;
    	default:
    	  parent::setSetting($settingName, $settingValue, '"value", "size"');
			  break;
    }
  }

  /**
   * задет текст кнопки
   *
   * @param string $value
   */
  public function setValue($value) {
    $this->_value = $value;
  }
  /**
   * задет истчник картинки для кнопки
   *
   * @param string $src
   */
  public function setSrc($src) {
    $this->_src = $src;
  }

  /**
   * Выводит элемент
   *
   */
  public function show() {
  	
   	if (isset($this->_src)) echo '<input type="image';
  	else echo '<button type="submit';
  	echo '"';
  	
  	if (isset($this->_src)) {
  	  echo ' src="' . $this->_src . '"';
  		$this->showElementAttributes();
 			if (isset($this->_value)) echo ' value="' . $this->_value . '"';
  		echo ' />';
  	
  	}
  	else {
  		$this->showElementAttributes();
  		echo '>';
  		if (isset($this->_value)) echo $this->_value;
  		else echo Service_Translate::getText("Отправить");
  		echo '</button>';
  	}
  	
  }
}
?>